home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
comm
/
bbs
/
cit_src_7H21.lha
/
vorlister.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-08-19
|
2KB
|
79 lines
/**
Vortex File Lister Version 1.00
**/
#include <stdio.h>
#include <string.h>
#include <libraries/dos.h>
#include <dos.h>
#include "ctdl.h"
#include "vortex.h"
#include <stdlib.h>
struct FileInfoBlock *info;
char *filename;
void Process_File(char *name);
void main( int argc, char **argv);
void main( int argc, char **argv)
{
int error, attr;
if( argc == 1 )
{
filename = "#?";
info = (struct FileInfoBlock *)calloc(1,sizeof(struct FileInfoBlock));
attr = 1; /* find all files not directories */
error = dfind(info,filename,attr); /* get first one*/
while( error == 0 )
{
Process_File(info->fib_FileName);
error = dnext(info);
};
free(info);
}
else
{
while( argc > 1 )
{
argc--;
Process_File(argv[argc]);
};
}
}
void Process_File(char *name)
{
ROOM_ENTRY_TYPE rec;
FILE *ip;
if( ( ip = fopen(name, "r") ) == NULL )
{
printf("Error: cannot open %s\n", name);
}
else
{
if( fread((void *)&rec, sizeof(ROOM_ENTRY_TYPE), 1, ip) != 1 )
{
printf("Error: could not read a record for file %s\n",name);
}
else
{
int node, nnodes;
nnodes = rec.index;
node = ( nnodes < MAX_VORTEX_SIZE ) ? 0 : rec.next_slot;
printf("Vortex File: %s Index: %d Next: %d\n", name, rec.index, rec.next_slot );
printf(" %20s %12s %10s %10s %s\n","Origin", "Src Id", "Date", "Time","Checksum");
while( nnodes-- )
{
printf( "%20s %12s %10s %10s %08.8X\n",
rec.msg_entry[node].mborig,
rec.msg_entry[node].mbsrcId,
rec.msg_entry[node].mbdate,
rec.msg_entry[node].mbtime,
rec.msg_entry[node].check_sum);
node = ( node + 1 ) % MAX_VORTEX_SIZE;
};
};
fclose(ip);
};
}